// pages/my/login/login.js

import {
  login
} from "../../../api/loginAPI"

// 购物车API
import {
  getCartAllGoodsNum, //请求购物车中每种商品在购物车中的数量
} from '../../../api/cartApi'

Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    loading: false
  },

  /**
   * 组件的方法列表
   */
  methods: {
    handleClickLogin(e) {
      console.log("用户点击了登录按钮:");
      let errmsg = e.detail.errMsg
      if (errmsg === 'getUserInfo:ok') {
        console.log("用户已同意授权");
        //用户已同意授权,可以获取用户的头像和昵称
        //并且向服务端发送登录的请求
        const userInfo = e.detail.userInfo
        console.log("用户的信息:", userInfo);
        //获取用户的签名
        const sign = e.detail.signature
        console.log("用户的签名:" + sign);
        //将用户的签名发送到服务端
        //当在服务端登录成功后缓存用户信息
        this.setData({
          loading: true
        })
        const temThis=this
        wx.login({
          timeout: 5000,
          success: function (res) {
            console.log("调用微信登录接口成功:", res);
            let code = res.code //用于获取用户的openid
            //调用微信登录接口成功后,调用服务器的登录接口
            let options = {
              code: code,
              iv: e.detail.iv,
              rawData: e.detail.rawData,
              signature: e.detail.signature,
              encryptedData: e.detail.encryptedData,
            }

            login(options).then((res)=>{
              console.log("登录成功返回数据:", typeof res, res);
              //保存token
              wx.setStorageSync('auth_token', res.data.token)
              //调用登录接口成功后保存用户的昵称和头像信息
              console.log("转成string类型:", JSON.stringify(userInfo));
              wx.setStorageSync('userInfo', JSON.stringify(userInfo))
              console.log("缓存成功!++++++", wx.getStorageSync('userInfo'),wx.getStorageSync('auth_token'));
              //调用app.js的初始化token方法
              getApp().initialToken()
              //调用app.js的初始化购物车tabbar右上角徽标数量
              getApp().initialCartTabBarBadge()
              //不能通过this调用setData
              temThis.setData({
                loading:false
              })
              //然后返回上一页
              wx.navigateBack({
                delta: 1,
              })
            }).catch((error) => {
              console.log("登录失败:", error);
              //不能通过this调用setData
              temThis.setData({
                loading:false
              })
              wx.showModal({
                content: "登录失败,请稍后重试",
                showCancel: false,
                confirmText: "确定"
              })
            })
          },
          fail: function (res) {
            console.log("调用微信登录接口失败:", res);
            temThis.setData({
              loading: false
            })
            wx.showToast({
              icon: "none",
              title: '登录失败请稍后重试'
            })
          }
        })
      } else {
        console.log("用户拒绝了授权");
        //弹出提示框
        wx.showModal({
          title: '提示',
          content: "您已拒绝授权,请重新点击并授权!",
          showCancel: false
        })
      }
    }
  }
})